Hi,
hier ein kleines Tutorial, das zeigt, wie man ganz einfach Apache als Reverse-Proxy aufsetzt.
Da hier viele danach gesucht haben und auch Noobs ein Recht auf Sicherheit haben, werde ich es mit euch teilen.
Los gehts:
1.) apt install apache2
2.) a2enmod proxy
3.) a2enmod proxy_http
4.) a2dissite 000-default.conf
5.) service apache2 reload
Damit hat man Apache2 installiert und die Module Proxy und Proxy_http geladen und die Standard Website "entladen".
Dann folgende Datei anlegen (in meinem Fall heißt sie "reverseproxy.conf":
1.) nano /etc/apache2/sites-available/reverseproxy.conf
Folgendes in die reverseproxy.conf einfügen:
Dann die ganze Sache noch laden (mit a2ensite) und den Apache neu laden:Code:<VirtualHost *:80> <Proxy *> Order deny,allow Allow from all </Proxy> ServerName domain.tld #<----- Die Seitendomain ServerAlias www.domain.tld #<----- Die Seitendomain ServerAdmin [email protected] ProxyPreserveHost On ProxyPass / http://xxx.xxx.xxx.xxx/ #<----- Die IP vom Backend-Server, wo die Seite drauf liegt ProxyPassReverse / http://xxx.xx.xxx.xxx/ #<----- Die IP zum Backend-Server, wo die Seite drauf liegt </VirtualHost>
1.) a2ensite reverseproxy.conf
2.) service apache2 reload
Apache neu starten.
Sollte jetzt soweit funktionieren.
Dann kann man noch Let's Encrypt installieren, wenn man will, damit die Domain SSL verschlüsselt ist:
1.) apt-get remove certbot
2.) wget https://dl.eff.org/certbot-auto --no-check-certificate
3.) mv certbot-auto /usr/local/bin/certbot-auto
4.) chown root /usr/local/bin/certbot-auto
5.) chmod 0755 /usr/local/bin/certbot-auto
Und dann noch folgendes, um die Zertifikate zu erstellen:
1.) /usr/local/bin/certbot-auto --apache
Automatisches Update der Zertifikate:
1.) echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew" | sudo tee -a /etc/crontab > /dev/null
Fertig.
Damit die originalen IPs und nicht die des Proxys an das Backend geschickt werden, noch folgendes:
Mod_remoteip aktivieren:
1.) a2enmod remoteip
Dann die Datei "remoteip.conf" anlegen:
1.) nano /etc/apache2/conf-available/remoteip.conf
Folgendes in die remoteip.conf einfügen:
Config laden:Code:RemoteIPHeader X-Forwarded-For
1.) a2enconf remoteip.conf
2.) service apache2 reload
Dann noch die "00_nameserver.conf" ändern:
1.) nano /etc/apache2/sites-enabled/00_nameserver.conf
Folgendes:
Ersetzen mit:Code:LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" vlogger
Apache neu starten.Code:LogFormat "%v %a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" vlogger
Fertig.
Die Reverse-Proxy-Server-IP muss natürlich via A-Record auf die Domain zeigen.
Verbesserungsvorschläge sind gerne gesehen.
Gruß
Alexej






Zitieren